1 module geany_d_binding.geany.filetypes; 2 3 import geany_d_binding.geany.types; 4 5 /** IDs of known filetypes 6 * 7 * @ref filetypes will contain an item for each. Use GeanyData::filetypes_array to 8 * determine the known filetypes at runtime */ 9 enum GeanyFiletypeID 10 { 11 GEANY_FILETYPES_NONE = 0, /* first filetype is always None & must be 0 */ 12 13 GEANY_FILETYPES_PHP, 14 GEANY_FILETYPES_BASIC, /* FreeBasic */ 15 GEANY_FILETYPES_MATLAB, 16 GEANY_FILETYPES_RUBY, 17 GEANY_FILETYPES_LUA, 18 GEANY_FILETYPES_FERITE, 19 GEANY_FILETYPES_YAML, 20 GEANY_FILETYPES_C, 21 GEANY_FILETYPES_NSIS, 22 GEANY_FILETYPES_GLSL, 23 GEANY_FILETYPES_PO, 24 GEANY_FILETYPES_MAKE, 25 GEANY_FILETYPES_TCL, 26 GEANY_FILETYPES_XML, 27 GEANY_FILETYPES_CSS, 28 GEANY_FILETYPES_REST, 29 GEANY_FILETYPES_HASKELL, 30 GEANY_FILETYPES_JAVA, 31 GEANY_FILETYPES_CAML, 32 GEANY_FILETYPES_AS, 33 GEANY_FILETYPES_R, 34 GEANY_FILETYPES_DIFF, 35 GEANY_FILETYPES_HTML, 36 GEANY_FILETYPES_PYTHON, 37 GEANY_FILETYPES_CS, 38 GEANY_FILETYPES_PERL, 39 GEANY_FILETYPES_VALA, 40 GEANY_FILETYPES_PASCAL, 41 GEANY_FILETYPES_LATEX, 42 GEANY_FILETYPES_ASM, 43 GEANY_FILETYPES_CONF, 44 GEANY_FILETYPES_HAXE, 45 GEANY_FILETYPES_CPP, 46 GEANY_FILETYPES_SH, 47 GEANY_FILETYPES_FORTRAN, 48 GEANY_FILETYPES_SQL, 49 GEANY_FILETYPES_F77, 50 GEANY_FILETYPES_DOCBOOK, 51 GEANY_FILETYPES_D, 52 GEANY_FILETYPES_JS, 53 GEANY_FILETYPES_VHDL, 54 GEANY_FILETYPES_ADA, 55 GEANY_FILETYPES_CMAKE, 56 GEANY_FILETYPES_MARKDOWN, 57 GEANY_FILETYPES_TXT2TAGS, 58 GEANY_FILETYPES_ABC, 59 GEANY_FILETYPES_VERILOG, 60 GEANY_FILETYPES_FORTH, 61 GEANY_FILETYPES_LISP, 62 GEANY_FILETYPES_ERLANG, 63 GEANY_FILETYPES_COBOL, 64 GEANY_FILETYPES_OBJECTIVEC, 65 GEANY_FILETYPES_ASCIIDOC, 66 GEANY_FILETYPES_ABAQUS, 67 GEANY_FILETYPES_BATCH, 68 GEANY_FILETYPES_POWERSHELL, 69 GEANY_FILETYPES_RUST, 70 GEANY_FILETYPES_COFFEESCRIPT, 71 GEANY_FILETYPES_GO, 72 GEANY_FILETYPES_ZEPHIR, 73 /* ^ append items here */ 74 GEANY_MAX_BUILT_IN_FILETYPES /* Don't use this, use filetypes_array->len instead */ 75 } 76 77 enum GeanyFiletypeGroupID 78 { 79 GEANY_FILETYPE_GROUP_NONE, 80 GEANY_FILETYPE_GROUP_COMPILED, 81 GEANY_FILETYPE_GROUP_SCRIPT, 82 GEANY_FILETYPE_GROUP_MARKUP, 83 GEANY_FILETYPE_GROUP_MISC, 84 GEANY_FILETYPE_GROUP_COUNT 85 } 86 87 /** Represents a filetype. */ 88 struct GeanyFiletype 89 { 90 GeanyFiletypeID id; /**< Index in @ref filetypes. */ 91 /* Represents the TMParserType of tagmanager (see the table 92 * in src/tagmanager/tm_parser.h). */ 93 TMParserType lang; 94 /** Untranslated short name, such as "C", "None". 95 * Must not be translated as it's used for hash table lookups - use 96 * filetypes_get_display_name() instead. */ 97 gchar *name; 98 /** Shown in the file open dialog, such as "C source file". */ 99 gchar *title; 100 gchar *extension; /**< Default file extension for new files, or @c NULL. */ 101 gchar **pattern; /**< Array of filename-matching wildcard strings. */ 102 gchar *context_action_cmd; 103 gchar *comment_open; 104 gchar *comment_close; 105 gboolean comment_use_indent; 106 GeanyFiletypeGroupID group; 107 gchar *error_regex_string; 108 GeanyFiletype* lexer_filetype; 109 gchar *mime_type; 110 GIcon *icon; 111 gchar *comment_single; /* single-line comment */ 112 /* filetype indent settings, -1 if not set */ 113 gint indent_type; 114 gint indent_width; 115 116 GeanyFiletypePrivate* priv; /* must be last, append fields before this item */ 117 } 118 119 struct GeanyFiletypePrivate; 120 struct TMSourceFile; 121 struct GIcon;